Ext.namespace('ZZExt.widgets');
/**
 * 直接传入数组（一维或二维[key,value]）
 * @class ZZExt.widgets.SimpleCombo
 * @extends Ext.form.ComboBox
 */
ZZExt.widgets.LocalComboBox=Ext.extend(Ext.form.ComboBox,{
	data:[],					//参数形式为[key,value]形式
	editable:false,				//默认不可编辑
	triggerAction:'all',
	constructor:function(config){
		Ext.apply(this,config);
		var defaultText=false;
		if(this.data&&this.data.length>0)
			defaultText=(this.data[0].length==1?true:false);
		ZZExt.widgets.LocalComboBox.superclass.constructor.call(this,{
			mode:'local',
			
			hiddenName:this.hiddenName==null?this.name:this.hiddenName,
			store:new Ext.data.ArrayStore({
				fields:defaultText?['objText']:['objText','objValue'],
				data:this.data
			}),
			displayField:'objText',
			valueField:defaultText?'objText':'objValue'
		});
	}
});

Ext.reg('localcombo',ZZExt.widgets.LocalComboBox);


ZZExt.widgets.RemoteComboBox=Ext.extend(Ext.form.ComboBox,{
	url:'',
	root:null,
	fields:null,
	editable:false,//默认不可编辑
	autoLoad:true,
	constructor:function(config){
		Ext.apply(this,config);
		var defaultText=false;
		if(this.fields!=null&&this.fields.length>0)
			defaultText=(this.fields.length==1?true:false);
		ZZExt.widgets.RemoteComboBox.superclass.constructor.call(this,{
			mode:'remote',
			triggerAction:'all',
			hiddenName:this.hiddenName==null?this.name:this.hiddenName,
			store:new Ext.data.JsonStore({
				url:this.url,
				root:this.root,
				autoLoad:this.autoLoad,
				fields:defaultText?['objText']:
					[{name:'objText',mapping:this.fields[0]},{name:'objValue',mapping:this.fields[1]}],
				listeners:{
					'load':function(store,rs,opts){
						var val = this.getValue();
						if(val!=null&&val!=''){
							this.setValue(val);
						}
					},
					scope:this
				}
				
			}),
			displayField:'objText',
			valueField:(defaultText?'objText':'objValue')
		});
	}
});

Ext.reg('remotecombo', ZZExt.widgets.RemoteComboBox);